<!--
  ~ Licensed under the Apache License, Version 2.0 (the "License");
  ~ you may not use this file except in compliance with the License.
  ~ You may obtain a copy of the License at
  ~     http://www.apache.org/licenses/LICENSE-2.0
  ~ Unless required by applicable law or agreed to in writing, software
  ~ distributed under the License is distributed on an "AS IS" BASIS,
  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  ~ See the License for the specific language governing permissions and
  ~ limitations under the License.
  -->

<div class="elastic" #elasticElement [class.min]="min">
  <input #inputElement
         [ngModel]="editValue"
         (ngModelChange)="updateValue($event)"
         *ngIf="showEditor"
         (blur)="setEditorState(false)"
         (keydown.esc)="cancelEdit()"
         (keydown.enter)="setEditorState(false)"
         (input)="updateInputWidth()">
  <p #pElement *ngIf="!showEditor" (click)="setEditorState(true)">{{value || defaultTitle}}</p>
</div>
